home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / ACORNUSERS / EMULATOR / FMSX / !Fmsx / hdr / CVars next >
Text File  |  1994-12-07  |  2KB  |  106 lines

  1. ; hdr.CVars
  2. ;
  3. ; Define macros for Assembler source.
  4. ;
  5.  
  6. ;**************************************************************************
  7. ; ExternVar $var
  8. ;
  9. ; Declare external C variables.
  10. ;
  11.         MACRO
  12.         ImportVar $var
  13.  
  14.         IMPORT  $var
  15. $var._Indirect  DCD     $var
  16.         MEND
  17.  
  18. ;**************************************************************************
  19. ; GlobalVar $var
  20. ;
  21. ; Declare external C variables.
  22. ;
  23.         MACRO
  24.         ExportVar $var
  25.  
  26.         EXPORT  $var
  27. $var._Indirect  DCD     $var
  28.         MEND
  29.  
  30. ;**************************************************************************
  31. ; StaticBaseFromSL $reg, $cc
  32. ;
  33. ; Set $reg to point to the base of the static data area using SL set up
  34. ; from C call.
  35. ;
  36.         MACRO
  37. $label  StaticBaseFromSL $reg, $cc
  38.  
  39. $label  LDR$cc  $reg, [sl, #-536]
  40.         MEND
  41.  
  42. ;**************************************************************************
  43. ; StaticBaseFromSP $reg, $cc
  44. ;
  45. ; Set $reg to point to the base of the static data area using stack frame
  46. ; placed at Mb boundary below SP by C call.
  47. ;
  48.         MACRO
  49. $label  StaticBaseFromSP $reg, $cc
  50.  
  51. $label  MOV$cc  $reg, sp, LSR #20
  52.         MOV$cc  $reg, $reg, LSL #20
  53.         LDR$cc  $reg, [$reg, #4]
  54.         MEND
  55.  
  56. ;**************************************************************************
  57. ; StaticBaseFromWP $reg, $cc
  58. ;
  59. ; Set $reg to point to the base of the static data area using private word
  60. ; contents only ie. workspace pointer.
  61. ;
  62.         MACRO
  63. $label  StaticBaseFromWP $reg, $pw, $cc
  64.  
  65. $label  LDR$cc  $reg, [$pw, #8]
  66.         MEND
  67.  
  68. ;**************************************************************************
  69. ; LDRVar $reg, $base, $var, $cc
  70. ;
  71. ; Load the contents of an external C variable.
  72. ;
  73.         MACRO
  74. $label  LDRVar  $reg, $base, $var, $cc
  75.  
  76. $label  LDR$cc  $reg, $var._Indirect
  77.         LDR$cc  $reg, [$base, $reg]
  78.         MEND
  79.  
  80. ;**************************************************************************
  81. ; STRVar $reg, $base, $var, $w1, $cc
  82. ;
  83. ; Set the contents of an external C variable.
  84. ;
  85.         MACRO
  86. $label  STRVar  $reg, $base, $var, $w1, $cc
  87.  
  88. $label  LDR$cc  $w1, $var._Indirect
  89.         STR$cc  $reg, [$base, $w1]
  90.         MEND
  91.  
  92. ;**************************************************************************
  93. ; ADRVar $reg, $base, $var, $cc
  94. ;
  95. ; Set $reg to point to the static variable $var.
  96. ;
  97.         MACRO
  98. $label  ADRVar  $reg, $base, $var, $cc
  99.  
  100. $label  LDR$cc  $reg, $var._Indirect
  101.         ADD$cc  $reg, $base, $reg
  102.         MEND
  103.  
  104.  
  105.         END
  106.